(0) Obligation:

Clauses:

transpose(A, B) :- transpose_aux(A, [], B).
transpose_aux(.(R, Rs), X1, .(C, Cs)) :- ','(row2col(R, .(C, Cs), Cols1, Accm), transpose_aux(Rs, Accm, Cols1)).
transpose_aux([], X, X).
row2col(.(X, Xs), .(.(X, Ys), Cols), .(Ys, Cols1), .([], As)) :- row2col(Xs, Cols, Cols1, As).
row2col([], [], [], []).

Query: transpose(g,g)

(1) PrologToPrologProblemTransformerProof (SOUND transformation)

Built Prolog problem from termination graph ICLP10.

(2) Obligation:

Clauses:

row2colA(.(T77, T78), .(.(T77, T79), T80), .(T79, X139), .([], X140)) :- row2colA(T78, T80, X139, X140).
row2colA([], [], [], []).
pB(T23, T25, T26, X35, X36, T24) :- row2colC(T23, T25, T26, X35, X36).
pB(T23, T25, T26, .(T113, T114), T112, .(T110, T111)) :- ','(row2colC(T23, T25, T26, .(T113, T114), T112), pB(T110, T113, T114, X185, X186, T111)).
pB(T23, T25, T26, T121, T121, []) :- row2colC(T23, T25, T26, T121, T121).
row2colC(.(T53, T54), .(T53, T55), T56, .(T55, X91), .([], X92)) :- row2colA(T54, T56, X91, X92).
transposeD(.(T23, T24), .(T25, T26)) :- pB(T23, T25, T26, X35, X36, T24).
transposeD([], []).

Query: transposeD(g,g)

(3) PrologToPiTRSProof (SOUND transformation)

We use the technique of [TOCL09]. With regard to the inferred argument filtering the predicates were used in the following modes:
transposeD_in: (b,b)
pB_in: (b,b,b,f,f,b)
row2colC_in: (b,b,b,f,f)
row2colA_in: (b,b,f,f)
Transforming Prolog into the following Term Rewriting System:
Pi-finite rewrite system:
The TRS R consists of the following rules:

transposeD_in_gg(.(T23, T24), .(T25, T26)) → U7_gg(T23, T24, T25, T26, pB_in_gggaag(T23, T25, T26, X35, X36, T24))
pB_in_gggaag(T23, T25, T26, X35, X36, T24) → U2_gggaag(T23, T25, T26, X35, X36, T24, row2colC_in_gggaa(T23, T25, T26, X35, X36))
row2colC_in_gggaa(.(T53, T54), .(T53, T55), T56, .(T55, X91), .([], X92)) → U6_gggaa(T53, T54, T55, T56, X91, X92, row2colA_in_ggaa(T54, T56, X91, X92))
row2colA_in_ggaa(.(T77, T78), .(.(T77, T79), T80), .(T79, X139), .([], X140)) → U1_ggaa(T77, T78, T79, T80, X139, X140, row2colA_in_ggaa(T78, T80, X139, X140))
row2colA_in_ggaa([], [], [], []) → row2colA_out_ggaa([], [], [], [])
U1_ggaa(T77, T78, T79, T80, X139, X140, row2colA_out_ggaa(T78, T80, X139, X140)) → row2colA_out_ggaa(.(T77, T78), .(.(T77, T79), T80), .(T79, X139), .([], X140))
U6_gggaa(T53, T54, T55, T56, X91, X92, row2colA_out_ggaa(T54, T56, X91, X92)) → row2colC_out_gggaa(.(T53, T54), .(T53, T55), T56, .(T55, X91), .([], X92))
U2_gggaag(T23, T25, T26, X35, X36, T24, row2colC_out_gggaa(T23, T25, T26, X35, X36)) → pB_out_gggaag(T23, T25, T26, X35, X36, T24)
pB_in_gggaag(T23, T25, T26, .(T113, T114), T112, .(T110, T111)) → U3_gggaag(T23, T25, T26, T113, T114, T112, T110, T111, row2colC_in_gggaa(T23, T25, T26, .(T113, T114), T112))
U3_gggaag(T23, T25, T26, T113, T114, T112, T110, T111, row2colC_out_gggaa(T23, T25, T26, .(T113, T114), T112)) → U4_gggaag(T23, T25, T26, T113, T114, T112, T110, T111, pB_in_gggaag(T110, T113, T114, X185, X186, T111))
pB_in_gggaag(T23, T25, T26, T121, T121, []) → U5_gggaag(T23, T25, T26, T121, row2colC_in_gggaa(T23, T25, T26, T121, T121))
U5_gggaag(T23, T25, T26, T121, row2colC_out_gggaa(T23, T25, T26, T121, T121)) → pB_out_gggaag(T23, T25, T26, T121, T121, [])
U4_gggaag(T23, T25, T26, T113, T114, T112, T110, T111, pB_out_gggaag(T110, T113, T114, X185, X186, T111)) → pB_out_gggaag(T23, T25, T26, .(T113, T114), T112, .(T110, T111))
U7_gg(T23, T24, T25, T26, pB_out_gggaag(T23, T25, T26, X35, X36, T24)) → transposeD_out_gg(.(T23, T24), .(T25, T26))
transposeD_in_gg([], []) → transposeD_out_gg([], [])

The argument filtering Pi contains the following mapping:
transposeD_in_gg(x1, x2)  =  transposeD_in_gg(x1, x2)
.(x1, x2)  =  .(x1, x2)
U7_gg(x1, x2, x3, x4, x5)  =  U7_gg(x5)
pB_in_gggaag(x1, x2, x3, x4, x5, x6)  =  pB_in_gggaag(x1, x2, x3, x6)
U2_gggaag(x1, x2, x3, x4, x5, x6, x7)  =  U2_gggaag(x7)
row2colC_in_gggaa(x1, x2, x3, x4, x5)  =  row2colC_in_gggaa(x1, x2, x3)
U6_gggaa(x1, x2, x3, x4, x5, x6, x7)  =  U6_gggaa(x3, x7)
row2colA_in_ggaa(x1, x2, x3, x4)  =  row2colA_in_ggaa(x1, x2)
U1_ggaa(x1, x2, x3, x4, x5, x6, x7)  =  U1_ggaa(x3, x7)
[]  =  []
row2colA_out_ggaa(x1, x2, x3, x4)  =  row2colA_out_ggaa(x3, x4)
row2colC_out_gggaa(x1, x2, x3, x4, x5)  =  row2colC_out_gggaa(x4, x5)
pB_out_gggaag(x1, x2, x3, x4, x5, x6)  =  pB_out_gggaag(x4, x5)
U3_gggaag(x1, x2, x3, x4, x5, x6, x7, x8, x9)  =  U3_gggaag(x7, x8, x9)
U4_gggaag(x1, x2, x3, x4, x5, x6, x7, x8, x9)  =  U4_gggaag(x4, x5, x6, x9)
U5_gggaag(x1, x2, x3, x4, x5)  =  U5_gggaag(x5)
transposeD_out_gg(x1, x2)  =  transposeD_out_gg

Infinitary Constructor Rewriting Termination of PiTRS implies Termination of Prolog

(4) Obligation:

Pi-finite rewrite system:
The TRS R consists of the following rules:

transposeD_in_gg(.(T23, T24), .(T25, T26)) → U7_gg(T23, T24, T25, T26, pB_in_gggaag(T23, T25, T26, X35, X36, T24))
pB_in_gggaag(T23, T25, T26, X35, X36, T24) → U2_gggaag(T23, T25, T26, X35, X36, T24, row2colC_in_gggaa(T23, T25, T26, X35, X36))
row2colC_in_gggaa(.(T53, T54), .(T53, T55), T56, .(T55, X91), .([], X92)) → U6_gggaa(T53, T54, T55, T56, X91, X92, row2colA_in_ggaa(T54, T56, X91, X92))
row2colA_in_ggaa(.(T77, T78), .(.(T77, T79), T80), .(T79, X139), .([], X140)) → U1_ggaa(T77, T78, T79, T80, X139, X140, row2colA_in_ggaa(T78, T80, X139, X140))
row2colA_in_ggaa([], [], [], []) → row2colA_out_ggaa([], [], [], [])
U1_ggaa(T77, T78, T79, T80, X139, X140, row2colA_out_ggaa(T78, T80, X139, X140)) → row2colA_out_ggaa(.(T77, T78), .(.(T77, T79), T80), .(T79, X139), .([], X140))
U6_gggaa(T53, T54, T55, T56, X91, X92, row2colA_out_ggaa(T54, T56, X91, X92)) → row2colC_out_gggaa(.(T53, T54), .(T53, T55), T56, .(T55, X91), .([], X92))
U2_gggaag(T23, T25, T26, X35, X36, T24, row2colC_out_gggaa(T23, T25, T26, X35, X36)) → pB_out_gggaag(T23, T25, T26, X35, X36, T24)
pB_in_gggaag(T23, T25, T26, .(T113, T114), T112, .(T110, T111)) → U3_gggaag(T23, T25, T26, T113, T114, T112, T110, T111, row2colC_in_gggaa(T23, T25, T26, .(T113, T114), T112))
U3_gggaag(T23, T25, T26, T113, T114, T112, T110, T111, row2colC_out_gggaa(T23, T25, T26, .(T113, T114), T112)) → U4_gggaag(T23, T25, T26, T113, T114, T112, T110, T111, pB_in_gggaag(T110, T113, T114, X185, X186, T111))
pB_in_gggaag(T23, T25, T26, T121, T121, []) → U5_gggaag(T23, T25, T26, T121, row2colC_in_gggaa(T23, T25, T26, T121, T121))
U5_gggaag(T23, T25, T26, T121, row2colC_out_gggaa(T23, T25, T26, T121, T121)) → pB_out_gggaag(T23, T25, T26, T121, T121, [])
U4_gggaag(T23, T25, T26, T113, T114, T112, T110, T111, pB_out_gggaag(T110, T113, T114, X185, X186, T111)) → pB_out_gggaag(T23, T25, T26, .(T113, T114), T112, .(T110, T111))
U7_gg(T23, T24, T25, T26, pB_out_gggaag(T23, T25, T26, X35, X36, T24)) → transposeD_out_gg(.(T23, T24), .(T25, T26))
transposeD_in_gg([], []) → transposeD_out_gg([], [])

The argument filtering Pi contains the following mapping:
transposeD_in_gg(x1, x2)  =  transposeD_in_gg(x1, x2)
.(x1, x2)  =  .(x1, x2)
U7_gg(x1, x2, x3, x4, x5)  =  U7_gg(x5)
pB_in_gggaag(x1, x2, x3, x4, x5, x6)  =  pB_in_gggaag(x1, x2, x3, x6)
U2_gggaag(x1, x2, x3, x4, x5, x6, x7)  =  U2_gggaag(x7)
row2colC_in_gggaa(x1, x2, x3, x4, x5)  =  row2colC_in_gggaa(x1, x2, x3)
U6_gggaa(x1, x2, x3, x4, x5, x6, x7)  =  U6_gggaa(x3, x7)
row2colA_in_ggaa(x1, x2, x3, x4)  =  row2colA_in_ggaa(x1, x2)
U1_ggaa(x1, x2, x3, x4, x5, x6, x7)  =  U1_ggaa(x3, x7)
[]  =  []
row2colA_out_ggaa(x1, x2, x3, x4)  =  row2colA_out_ggaa(x3, x4)
row2colC_out_gggaa(x1, x2, x3, x4, x5)  =  row2colC_out_gggaa(x4, x5)
pB_out_gggaag(x1, x2, x3, x4, x5, x6)  =  pB_out_gggaag(x4, x5)
U3_gggaag(x1, x2, x3, x4, x5, x6, x7, x8, x9)  =  U3_gggaag(x7, x8, x9)
U4_gggaag(x1, x2, x3, x4, x5, x6, x7, x8, x9)  =  U4_gggaag(x4, x5, x6, x9)
U5_gggaag(x1, x2, x3, x4, x5)  =  U5_gggaag(x5)
transposeD_out_gg(x1, x2)  =  transposeD_out_gg

(5) DependencyPairsProof (EQUIVALENT transformation)

Using Dependency Pairs [AG00,LOPSTR] we result in the following initial DP problem:
Pi DP problem:
The TRS P consists of the following rules:

TRANSPOSED_IN_GG(.(T23, T24), .(T25, T26)) → U7_GG(T23, T24, T25, T26, pB_in_gggaag(T23, T25, T26, X35, X36, T24))
TRANSPOSED_IN_GG(.(T23, T24), .(T25, T26)) → PB_IN_GGGAAG(T23, T25, T26, X35, X36, T24)
PB_IN_GGGAAG(T23, T25, T26, X35, X36, T24) → U2_GGGAAG(T23, T25, T26, X35, X36, T24, row2colC_in_gggaa(T23, T25, T26, X35, X36))
PB_IN_GGGAAG(T23, T25, T26, X35, X36, T24) → ROW2COLC_IN_GGGAA(T23, T25, T26, X35, X36)
ROW2COLC_IN_GGGAA(.(T53, T54), .(T53, T55), T56, .(T55, X91), .([], X92)) → U6_GGGAA(T53, T54, T55, T56, X91, X92, row2colA_in_ggaa(T54, T56, X91, X92))
ROW2COLC_IN_GGGAA(.(T53, T54), .(T53, T55), T56, .(T55, X91), .([], X92)) → ROW2COLA_IN_GGAA(T54, T56, X91, X92)
ROW2COLA_IN_GGAA(.(T77, T78), .(.(T77, T79), T80), .(T79, X139), .([], X140)) → U1_GGAA(T77, T78, T79, T80, X139, X140, row2colA_in_ggaa(T78, T80, X139, X140))
ROW2COLA_IN_GGAA(.(T77, T78), .(.(T77, T79), T80), .(T79, X139), .([], X140)) → ROW2COLA_IN_GGAA(T78, T80, X139, X140)
PB_IN_GGGAAG(T23, T25, T26, .(T113, T114), T112, .(T110, T111)) → U3_GGGAAG(T23, T25, T26, T113, T114, T112, T110, T111, row2colC_in_gggaa(T23, T25, T26, .(T113, T114), T112))
PB_IN_GGGAAG(T23, T25, T26, .(T113, T114), T112, .(T110, T111)) → ROW2COLC_IN_GGGAA(T23, T25, T26, .(T113, T114), T112)
U3_GGGAAG(T23, T25, T26, T113, T114, T112, T110, T111, row2colC_out_gggaa(T23, T25, T26, .(T113, T114), T112)) → U4_GGGAAG(T23, T25, T26, T113, T114, T112, T110, T111, pB_in_gggaag(T110, T113, T114, X185, X186, T111))
U3_GGGAAG(T23, T25, T26, T113, T114, T112, T110, T111, row2colC_out_gggaa(T23, T25, T26, .(T113, T114), T112)) → PB_IN_GGGAAG(T110, T113, T114, X185, X186, T111)
PB_IN_GGGAAG(T23, T25, T26, T121, T121, []) → U5_GGGAAG(T23, T25, T26, T121, row2colC_in_gggaa(T23, T25, T26, T121, T121))
PB_IN_GGGAAG(T23, T25, T26, T121, T121, []) → ROW2COLC_IN_GGGAA(T23, T25, T26, T121, T121)

The TRS R consists of the following rules:

transposeD_in_gg(.(T23, T24), .(T25, T26)) → U7_gg(T23, T24, T25, T26, pB_in_gggaag(T23, T25, T26, X35, X36, T24))
pB_in_gggaag(T23, T25, T26, X35, X36, T24) → U2_gggaag(T23, T25, T26, X35, X36, T24, row2colC_in_gggaa(T23, T25, T26, X35, X36))
row2colC_in_gggaa(.(T53, T54), .(T53, T55), T56, .(T55, X91), .([], X92)) → U6_gggaa(T53, T54, T55, T56, X91, X92, row2colA_in_ggaa(T54, T56, X91, X92))
row2colA_in_ggaa(.(T77, T78), .(.(T77, T79), T80), .(T79, X139), .([], X140)) → U1_ggaa(T77, T78, T79, T80, X139, X140, row2colA_in_ggaa(T78, T80, X139, X140))
row2colA_in_ggaa([], [], [], []) → row2colA_out_ggaa([], [], [], [])
U1_ggaa(T77, T78, T79, T80, X139, X140, row2colA_out_ggaa(T78, T80, X139, X140)) → row2colA_out_ggaa(.(T77, T78), .(.(T77, T79), T80), .(T79, X139), .([], X140))
U6_gggaa(T53, T54, T55, T56, X91, X92, row2colA_out_ggaa(T54, T56, X91, X92)) → row2colC_out_gggaa(.(T53, T54), .(T53, T55), T56, .(T55, X91), .([], X92))
U2_gggaag(T23, T25, T26, X35, X36, T24, row2colC_out_gggaa(T23, T25, T26, X35, X36)) → pB_out_gggaag(T23, T25, T26, X35, X36, T24)
pB_in_gggaag(T23, T25, T26, .(T113, T114), T112, .(T110, T111)) → U3_gggaag(T23, T25, T26, T113, T114, T112, T110, T111, row2colC_in_gggaa(T23, T25, T26, .(T113, T114), T112))
U3_gggaag(T23, T25, T26, T113, T114, T112, T110, T111, row2colC_out_gggaa(T23, T25, T26, .(T113, T114), T112)) → U4_gggaag(T23, T25, T26, T113, T114, T112, T110, T111, pB_in_gggaag(T110, T113, T114, X185, X186, T111))
pB_in_gggaag(T23, T25, T26, T121, T121, []) → U5_gggaag(T23, T25, T26, T121, row2colC_in_gggaa(T23, T25, T26, T121, T121))
U5_gggaag(T23, T25, T26, T121, row2colC_out_gggaa(T23, T25, T26, T121, T121)) → pB_out_gggaag(T23, T25, T26, T121, T121, [])
U4_gggaag(T23, T25, T26, T113, T114, T112, T110, T111, pB_out_gggaag(T110, T113, T114, X185, X186, T111)) → pB_out_gggaag(T23, T25, T26, .(T113, T114), T112, .(T110, T111))
U7_gg(T23, T24, T25, T26, pB_out_gggaag(T23, T25, T26, X35, X36, T24)) → transposeD_out_gg(.(T23, T24), .(T25, T26))
transposeD_in_gg([], []) → transposeD_out_gg([], [])

The argument filtering Pi contains the following mapping:
transposeD_in_gg(x1, x2)  =  transposeD_in_gg(x1, x2)
.(x1, x2)  =  .(x1, x2)
U7_gg(x1, x2, x3, x4, x5)  =  U7_gg(x5)
pB_in_gggaag(x1, x2, x3, x4, x5, x6)  =  pB_in_gggaag(x1, x2, x3, x6)
U2_gggaag(x1, x2, x3, x4, x5, x6, x7)  =  U2_gggaag(x7)
row2colC_in_gggaa(x1, x2, x3, x4, x5)  =  row2colC_in_gggaa(x1, x2, x3)
U6_gggaa(x1, x2, x3, x4, x5, x6, x7)  =  U6_gggaa(x3, x7)
row2colA_in_ggaa(x1, x2, x3, x4)  =  row2colA_in_ggaa(x1, x2)
U1_ggaa(x1, x2, x3, x4, x5, x6, x7)  =  U1_ggaa(x3, x7)
[]  =  []
row2colA_out_ggaa(x1, x2, x3, x4)  =  row2colA_out_ggaa(x3, x4)
row2colC_out_gggaa(x1, x2, x3, x4, x5)  =  row2colC_out_gggaa(x4, x5)
pB_out_gggaag(x1, x2, x3, x4, x5, x6)  =  pB_out_gggaag(x4, x5)
U3_gggaag(x1, x2, x3, x4, x5, x6, x7, x8, x9)  =  U3_gggaag(x7, x8, x9)
U4_gggaag(x1, x2, x3, x4, x5, x6, x7, x8, x9)  =  U4_gggaag(x4, x5, x6, x9)
U5_gggaag(x1, x2, x3, x4, x5)  =  U5_gggaag(x5)
transposeD_out_gg(x1, x2)  =  transposeD_out_gg
TRANSPOSED_IN_GG(x1, x2)  =  TRANSPOSED_IN_GG(x1, x2)
U7_GG(x1, x2, x3, x4, x5)  =  U7_GG(x5)
PB_IN_GGGAAG(x1, x2, x3, x4, x5, x6)  =  PB_IN_GGGAAG(x1, x2, x3, x6)
U2_GGGAAG(x1, x2, x3, x4, x5, x6, x7)  =  U2_GGGAAG(x7)
ROW2COLC_IN_GGGAA(x1, x2, x3, x4, x5)  =  ROW2COLC_IN_GGGAA(x1, x2, x3)
U6_GGGAA(x1, x2, x3, x4, x5, x6, x7)  =  U6_GGGAA(x3, x7)
ROW2COLA_IN_GGAA(x1, x2, x3, x4)  =  ROW2COLA_IN_GGAA(x1, x2)
U1_GGAA(x1, x2, x3, x4, x5, x6, x7)  =  U1_GGAA(x3, x7)
U3_GGGAAG(x1, x2, x3, x4, x5, x6, x7, x8, x9)  =  U3_GGGAAG(x7, x8, x9)
U4_GGGAAG(x1, x2, x3, x4, x5, x6, x7, x8, x9)  =  U4_GGGAAG(x4, x5, x6, x9)
U5_GGGAAG(x1, x2, x3, x4, x5)  =  U5_GGGAAG(x5)

We have to consider all (P,R,Pi)-chains

(6) Obligation:

Pi DP problem:
The TRS P consists of the following rules:

TRANSPOSED_IN_GG(.(T23, T24), .(T25, T26)) → U7_GG(T23, T24, T25, T26, pB_in_gggaag(T23, T25, T26, X35, X36, T24))
TRANSPOSED_IN_GG(.(T23, T24), .(T25, T26)) → PB_IN_GGGAAG(T23, T25, T26, X35, X36, T24)
PB_IN_GGGAAG(T23, T25, T26, X35, X36, T24) → U2_GGGAAG(T23, T25, T26, X35, X36, T24, row2colC_in_gggaa(T23, T25, T26, X35, X36))
PB_IN_GGGAAG(T23, T25, T26, X35, X36, T24) → ROW2COLC_IN_GGGAA(T23, T25, T26, X35, X36)
ROW2COLC_IN_GGGAA(.(T53, T54), .(T53, T55), T56, .(T55, X91), .([], X92)) → U6_GGGAA(T53, T54, T55, T56, X91, X92, row2colA_in_ggaa(T54, T56, X91, X92))
ROW2COLC_IN_GGGAA(.(T53, T54), .(T53, T55), T56, .(T55, X91), .([], X92)) → ROW2COLA_IN_GGAA(T54, T56, X91, X92)
ROW2COLA_IN_GGAA(.(T77, T78), .(.(T77, T79), T80), .(T79, X139), .([], X140)) → U1_GGAA(T77, T78, T79, T80, X139, X140, row2colA_in_ggaa(T78, T80, X139, X140))
ROW2COLA_IN_GGAA(.(T77, T78), .(.(T77, T79), T80), .(T79, X139), .([], X140)) → ROW2COLA_IN_GGAA(T78, T80, X139, X140)
PB_IN_GGGAAG(T23, T25, T26, .(T113, T114), T112, .(T110, T111)) → U3_GGGAAG(T23, T25, T26, T113, T114, T112, T110, T111, row2colC_in_gggaa(T23, T25, T26, .(T113, T114), T112))
PB_IN_GGGAAG(T23, T25, T26, .(T113, T114), T112, .(T110, T111)) → ROW2COLC_IN_GGGAA(T23, T25, T26, .(T113, T114), T112)
U3_GGGAAG(T23, T25, T26, T113, T114, T112, T110, T111, row2colC_out_gggaa(T23, T25, T26, .(T113, T114), T112)) → U4_GGGAAG(T23, T25, T26, T113, T114, T112, T110, T111, pB_in_gggaag(T110, T113, T114, X185, X186, T111))
U3_GGGAAG(T23, T25, T26, T113, T114, T112, T110, T111, row2colC_out_gggaa(T23, T25, T26, .(T113, T114), T112)) → PB_IN_GGGAAG(T110, T113, T114, X185, X186, T111)
PB_IN_GGGAAG(T23, T25, T26, T121, T121, []) → U5_GGGAAG(T23, T25, T26, T121, row2colC_in_gggaa(T23, T25, T26, T121, T121))
PB_IN_GGGAAG(T23, T25, T26, T121, T121, []) → ROW2COLC_IN_GGGAA(T23, T25, T26, T121, T121)

The TRS R consists of the following rules:

transposeD_in_gg(.(T23, T24), .(T25, T26)) → U7_gg(T23, T24, T25, T26, pB_in_gggaag(T23, T25, T26, X35, X36, T24))
pB_in_gggaag(T23, T25, T26, X35, X36, T24) → U2_gggaag(T23, T25, T26, X35, X36, T24, row2colC_in_gggaa(T23, T25, T26, X35, X36))
row2colC_in_gggaa(.(T53, T54), .(T53, T55), T56, .(T55, X91), .([], X92)) → U6_gggaa(T53, T54, T55, T56, X91, X92, row2colA_in_ggaa(T54, T56, X91, X92))
row2colA_in_ggaa(.(T77, T78), .(.(T77, T79), T80), .(T79, X139), .([], X140)) → U1_ggaa(T77, T78, T79, T80, X139, X140, row2colA_in_ggaa(T78, T80, X139, X140))
row2colA_in_ggaa([], [], [], []) → row2colA_out_ggaa([], [], [], [])
U1_ggaa(T77, T78, T79, T80, X139, X140, row2colA_out_ggaa(T78, T80, X139, X140)) → row2colA_out_ggaa(.(T77, T78), .(.(T77, T79), T80), .(T79, X139), .([], X140))
U6_gggaa(T53, T54, T55, T56, X91, X92, row2colA_out_ggaa(T54, T56, X91, X92)) → row2colC_out_gggaa(.(T53, T54), .(T53, T55), T56, .(T55, X91), .([], X92))
U2_gggaag(T23, T25, T26, X35, X36, T24, row2colC_out_gggaa(T23, T25, T26, X35, X36)) → pB_out_gggaag(T23, T25, T26, X35, X36, T24)
pB_in_gggaag(T23, T25, T26, .(T113, T114), T112, .(T110, T111)) → U3_gggaag(T23, T25, T26, T113, T114, T112, T110, T111, row2colC_in_gggaa(T23, T25, T26, .(T113, T114), T112))
U3_gggaag(T23, T25, T26, T113, T114, T112, T110, T111, row2colC_out_gggaa(T23, T25, T26, .(T113, T114), T112)) → U4_gggaag(T23, T25, T26, T113, T114, T112, T110, T111, pB_in_gggaag(T110, T113, T114, X185, X186, T111))
pB_in_gggaag(T23, T25, T26, T121, T121, []) → U5_gggaag(T23, T25, T26, T121, row2colC_in_gggaa(T23, T25, T26, T121, T121))
U5_gggaag(T23, T25, T26, T121, row2colC_out_gggaa(T23, T25, T26, T121, T121)) → pB_out_gggaag(T23, T25, T26, T121, T121, [])
U4_gggaag(T23, T25, T26, T113, T114, T112, T110, T111, pB_out_gggaag(T110, T113, T114, X185, X186, T111)) → pB_out_gggaag(T23, T25, T26, .(T113, T114), T112, .(T110, T111))
U7_gg(T23, T24, T25, T26, pB_out_gggaag(T23, T25, T26, X35, X36, T24)) → transposeD_out_gg(.(T23, T24), .(T25, T26))
transposeD_in_gg([], []) → transposeD_out_gg([], [])

The argument filtering Pi contains the following mapping:
transposeD_in_gg(x1, x2)  =  transposeD_in_gg(x1, x2)
.(x1, x2)  =  .(x1, x2)
U7_gg(x1, x2, x3, x4, x5)  =  U7_gg(x5)
pB_in_gggaag(x1, x2, x3, x4, x5, x6)  =  pB_in_gggaag(x1, x2, x3, x6)
U2_gggaag(x1, x2, x3, x4, x5, x6, x7)  =  U2_gggaag(x7)
row2colC_in_gggaa(x1, x2, x3, x4, x5)  =  row2colC_in_gggaa(x1, x2, x3)
U6_gggaa(x1, x2, x3, x4, x5, x6, x7)  =  U6_gggaa(x3, x7)
row2colA_in_ggaa(x1, x2, x3, x4)  =  row2colA_in_ggaa(x1, x2)
U1_ggaa(x1, x2, x3, x4, x5, x6, x7)  =  U1_ggaa(x3, x7)
[]  =  []
row2colA_out_ggaa(x1, x2, x3, x4)  =  row2colA_out_ggaa(x3, x4)
row2colC_out_gggaa(x1, x2, x3, x4, x5)  =  row2colC_out_gggaa(x4, x5)
pB_out_gggaag(x1, x2, x3, x4, x5, x6)  =  pB_out_gggaag(x4, x5)
U3_gggaag(x1, x2, x3, x4, x5, x6, x7, x8, x9)  =  U3_gggaag(x7, x8, x9)
U4_gggaag(x1, x2, x3, x4, x5, x6, x7, x8, x9)  =  U4_gggaag(x4, x5, x6, x9)
U5_gggaag(x1, x2, x3, x4, x5)  =  U5_gggaag(x5)
transposeD_out_gg(x1, x2)  =  transposeD_out_gg
TRANSPOSED_IN_GG(x1, x2)  =  TRANSPOSED_IN_GG(x1, x2)
U7_GG(x1, x2, x3, x4, x5)  =  U7_GG(x5)
PB_IN_GGGAAG(x1, x2, x3, x4, x5, x6)  =  PB_IN_GGGAAG(x1, x2, x3, x6)
U2_GGGAAG(x1, x2, x3, x4, x5, x6, x7)  =  U2_GGGAAG(x7)
ROW2COLC_IN_GGGAA(x1, x2, x3, x4, x5)  =  ROW2COLC_IN_GGGAA(x1, x2, x3)
U6_GGGAA(x1, x2, x3, x4, x5, x6, x7)  =  U6_GGGAA(x3, x7)
ROW2COLA_IN_GGAA(x1, x2, x3, x4)  =  ROW2COLA_IN_GGAA(x1, x2)
U1_GGAA(x1, x2, x3, x4, x5, x6, x7)  =  U1_GGAA(x3, x7)
U3_GGGAAG(x1, x2, x3, x4, x5, x6, x7, x8, x9)  =  U3_GGGAAG(x7, x8, x9)
U4_GGGAAG(x1, x2, x3, x4, x5, x6, x7, x8, x9)  =  U4_GGGAAG(x4, x5, x6, x9)
U5_GGGAAG(x1, x2, x3, x4, x5)  =  U5_GGGAAG(x5)

We have to consider all (P,R,Pi)-chains

(7) DependencyGraphProof (EQUIVALENT transformation)

The approximation of the Dependency Graph [LOPSTR] contains 2 SCCs with 11 less nodes.

(8) Complex Obligation (AND)

(9) Obligation:

Pi DP problem:
The TRS P consists of the following rules:

ROW2COLA_IN_GGAA(.(T77, T78), .(.(T77, T79), T80), .(T79, X139), .([], X140)) → ROW2COLA_IN_GGAA(T78, T80, X139, X140)

The TRS R consists of the following rules:

transposeD_in_gg(.(T23, T24), .(T25, T26)) → U7_gg(T23, T24, T25, T26, pB_in_gggaag(T23, T25, T26, X35, X36, T24))
pB_in_gggaag(T23, T25, T26, X35, X36, T24) → U2_gggaag(T23, T25, T26, X35, X36, T24, row2colC_in_gggaa(T23, T25, T26, X35, X36))
row2colC_in_gggaa(.(T53, T54), .(T53, T55), T56, .(T55, X91), .([], X92)) → U6_gggaa(T53, T54, T55, T56, X91, X92, row2colA_in_ggaa(T54, T56, X91, X92))
row2colA_in_ggaa(.(T77, T78), .(.(T77, T79), T80), .(T79, X139), .([], X140)) → U1_ggaa(T77, T78, T79, T80, X139, X140, row2colA_in_ggaa(T78, T80, X139, X140))
row2colA_in_ggaa([], [], [], []) → row2colA_out_ggaa([], [], [], [])
U1_ggaa(T77, T78, T79, T80, X139, X140, row2colA_out_ggaa(T78, T80, X139, X140)) → row2colA_out_ggaa(.(T77, T78), .(.(T77, T79), T80), .(T79, X139), .([], X140))
U6_gggaa(T53, T54, T55, T56, X91, X92, row2colA_out_ggaa(T54, T56, X91, X92)) → row2colC_out_gggaa(.(T53, T54), .(T53, T55), T56, .(T55, X91), .([], X92))
U2_gggaag(T23, T25, T26, X35, X36, T24, row2colC_out_gggaa(T23, T25, T26, X35, X36)) → pB_out_gggaag(T23, T25, T26, X35, X36, T24)
pB_in_gggaag(T23, T25, T26, .(T113, T114), T112, .(T110, T111)) → U3_gggaag(T23, T25, T26, T113, T114, T112, T110, T111, row2colC_in_gggaa(T23, T25, T26, .(T113, T114), T112))
U3_gggaag(T23, T25, T26, T113, T114, T112, T110, T111, row2colC_out_gggaa(T23, T25, T26, .(T113, T114), T112)) → U4_gggaag(T23, T25, T26, T113, T114, T112, T110, T111, pB_in_gggaag(T110, T113, T114, X185, X186, T111))
pB_in_gggaag(T23, T25, T26, T121, T121, []) → U5_gggaag(T23, T25, T26, T121, row2colC_in_gggaa(T23, T25, T26, T121, T121))
U5_gggaag(T23, T25, T26, T121, row2colC_out_gggaa(T23, T25, T26, T121, T121)) → pB_out_gggaag(T23, T25, T26, T121, T121, [])
U4_gggaag(T23, T25, T26, T113, T114, T112, T110, T111, pB_out_gggaag(T110, T113, T114, X185, X186, T111)) → pB_out_gggaag(T23, T25, T26, .(T113, T114), T112, .(T110, T111))
U7_gg(T23, T24, T25, T26, pB_out_gggaag(T23, T25, T26, X35, X36, T24)) → transposeD_out_gg(.(T23, T24), .(T25, T26))
transposeD_in_gg([], []) → transposeD_out_gg([], [])

The argument filtering Pi contains the following mapping:
transposeD_in_gg(x1, x2)  =  transposeD_in_gg(x1, x2)
.(x1, x2)  =  .(x1, x2)
U7_gg(x1, x2, x3, x4, x5)  =  U7_gg(x5)
pB_in_gggaag(x1, x2, x3, x4, x5, x6)  =  pB_in_gggaag(x1, x2, x3, x6)
U2_gggaag(x1, x2, x3, x4, x5, x6, x7)  =  U2_gggaag(x7)
row2colC_in_gggaa(x1, x2, x3, x4, x5)  =  row2colC_in_gggaa(x1, x2, x3)
U6_gggaa(x1, x2, x3, x4, x5, x6, x7)  =  U6_gggaa(x3, x7)
row2colA_in_ggaa(x1, x2, x3, x4)  =  row2colA_in_ggaa(x1, x2)
U1_ggaa(x1, x2, x3, x4, x5, x6, x7)  =  U1_ggaa(x3, x7)
[]  =  []
row2colA_out_ggaa(x1, x2, x3, x4)  =  row2colA_out_ggaa(x3, x4)
row2colC_out_gggaa(x1, x2, x3, x4, x5)  =  row2colC_out_gggaa(x4, x5)
pB_out_gggaag(x1, x2, x3, x4, x5, x6)  =  pB_out_gggaag(x4, x5)
U3_gggaag(x1, x2, x3, x4, x5, x6, x7, x8, x9)  =  U3_gggaag(x7, x8, x9)
U4_gggaag(x1, x2, x3, x4, x5, x6, x7, x8, x9)  =  U4_gggaag(x4, x5, x6, x9)
U5_gggaag(x1, x2, x3, x4, x5)  =  U5_gggaag(x5)
transposeD_out_gg(x1, x2)  =  transposeD_out_gg
ROW2COLA_IN_GGAA(x1, x2, x3, x4)  =  ROW2COLA_IN_GGAA(x1, x2)

We have to consider all (P,R,Pi)-chains

(10) UsableRulesProof (EQUIVALENT transformation)

For (infinitary) constructor rewriting [LOPSTR] we can delete all non-usable rules from R.

(11) Obligation:

Pi DP problem:
The TRS P consists of the following rules:

ROW2COLA_IN_GGAA(.(T77, T78), .(.(T77, T79), T80), .(T79, X139), .([], X140)) → ROW2COLA_IN_GGAA(T78, T80, X139, X140)

R is empty.
The argument filtering Pi contains the following mapping:
.(x1, x2)  =  .(x1, x2)
[]  =  []
ROW2COLA_IN_GGAA(x1, x2, x3, x4)  =  ROW2COLA_IN_GGAA(x1, x2)

We have to consider all (P,R,Pi)-chains

(12) PiDPToQDPProof (SOUND transformation)

Transforming (infinitary) constructor rewriting Pi-DP problem [LOPSTR] into ordinary QDP problem [LPAR04] by application of Pi.

(13) Obligation:

Q DP problem:
The TRS P consists of the following rules:

ROW2COLA_IN_GGAA(.(T77, T78), .(.(T77, T79), T80)) → ROW2COLA_IN_GGAA(T78, T80)

R is empty.
Q is empty.
We have to consider all (P,Q,R)-chains.

(14) QDPSizeChangeProof (EQUIVALENT transformation)

By using the subterm criterion [SUBTERM_CRITERION] together with the size-change analysis [AAECC05] we have proven that there are no infinite chains for this DP problem.

From the DPs we obtained the following set of size-change graphs:

  • ROW2COLA_IN_GGAA(.(T77, T78), .(.(T77, T79), T80)) → ROW2COLA_IN_GGAA(T78, T80)
    The graph contains the following edges 1 > 1, 2 > 2

(15) YES

(16) Obligation:

Pi DP problem:
The TRS P consists of the following rules:

PB_IN_GGGAAG(T23, T25, T26, .(T113, T114), T112, .(T110, T111)) → U3_GGGAAG(T23, T25, T26, T113, T114, T112, T110, T111, row2colC_in_gggaa(T23, T25, T26, .(T113, T114), T112))
U3_GGGAAG(T23, T25, T26, T113, T114, T112, T110, T111, row2colC_out_gggaa(T23, T25, T26, .(T113, T114), T112)) → PB_IN_GGGAAG(T110, T113, T114, X185, X186, T111)

The TRS R consists of the following rules:

transposeD_in_gg(.(T23, T24), .(T25, T26)) → U7_gg(T23, T24, T25, T26, pB_in_gggaag(T23, T25, T26, X35, X36, T24))
pB_in_gggaag(T23, T25, T26, X35, X36, T24) → U2_gggaag(T23, T25, T26, X35, X36, T24, row2colC_in_gggaa(T23, T25, T26, X35, X36))
row2colC_in_gggaa(.(T53, T54), .(T53, T55), T56, .(T55, X91), .([], X92)) → U6_gggaa(T53, T54, T55, T56, X91, X92, row2colA_in_ggaa(T54, T56, X91, X92))
row2colA_in_ggaa(.(T77, T78), .(.(T77, T79), T80), .(T79, X139), .([], X140)) → U1_ggaa(T77, T78, T79, T80, X139, X140, row2colA_in_ggaa(T78, T80, X139, X140))
row2colA_in_ggaa([], [], [], []) → row2colA_out_ggaa([], [], [], [])
U1_ggaa(T77, T78, T79, T80, X139, X140, row2colA_out_ggaa(T78, T80, X139, X140)) → row2colA_out_ggaa(.(T77, T78), .(.(T77, T79), T80), .(T79, X139), .([], X140))
U6_gggaa(T53, T54, T55, T56, X91, X92, row2colA_out_ggaa(T54, T56, X91, X92)) → row2colC_out_gggaa(.(T53, T54), .(T53, T55), T56, .(T55, X91), .([], X92))
U2_gggaag(T23, T25, T26, X35, X36, T24, row2colC_out_gggaa(T23, T25, T26, X35, X36)) → pB_out_gggaag(T23, T25, T26, X35, X36, T24)
pB_in_gggaag(T23, T25, T26, .(T113, T114), T112, .(T110, T111)) → U3_gggaag(T23, T25, T26, T113, T114, T112, T110, T111, row2colC_in_gggaa(T23, T25, T26, .(T113, T114), T112))
U3_gggaag(T23, T25, T26, T113, T114, T112, T110, T111, row2colC_out_gggaa(T23, T25, T26, .(T113, T114), T112)) → U4_gggaag(T23, T25, T26, T113, T114, T112, T110, T111, pB_in_gggaag(T110, T113, T114, X185, X186, T111))
pB_in_gggaag(T23, T25, T26, T121, T121, []) → U5_gggaag(T23, T25, T26, T121, row2colC_in_gggaa(T23, T25, T26, T121, T121))
U5_gggaag(T23, T25, T26, T121, row2colC_out_gggaa(T23, T25, T26, T121, T121)) → pB_out_gggaag(T23, T25, T26, T121, T121, [])
U4_gggaag(T23, T25, T26, T113, T114, T112, T110, T111, pB_out_gggaag(T110, T113, T114, X185, X186, T111)) → pB_out_gggaag(T23, T25, T26, .(T113, T114), T112, .(T110, T111))
U7_gg(T23, T24, T25, T26, pB_out_gggaag(T23, T25, T26, X35, X36, T24)) → transposeD_out_gg(.(T23, T24), .(T25, T26))
transposeD_in_gg([], []) → transposeD_out_gg([], [])

The argument filtering Pi contains the following mapping:
transposeD_in_gg(x1, x2)  =  transposeD_in_gg(x1, x2)
.(x1, x2)  =  .(x1, x2)
U7_gg(x1, x2, x3, x4, x5)  =  U7_gg(x5)
pB_in_gggaag(x1, x2, x3, x4, x5, x6)  =  pB_in_gggaag(x1, x2, x3, x6)
U2_gggaag(x1, x2, x3, x4, x5, x6, x7)  =  U2_gggaag(x7)
row2colC_in_gggaa(x1, x2, x3, x4, x5)  =  row2colC_in_gggaa(x1, x2, x3)
U6_gggaa(x1, x2, x3, x4, x5, x6, x7)  =  U6_gggaa(x3, x7)
row2colA_in_ggaa(x1, x2, x3, x4)  =  row2colA_in_ggaa(x1, x2)
U1_ggaa(x1, x2, x3, x4, x5, x6, x7)  =  U1_ggaa(x3, x7)
[]  =  []
row2colA_out_ggaa(x1, x2, x3, x4)  =  row2colA_out_ggaa(x3, x4)
row2colC_out_gggaa(x1, x2, x3, x4, x5)  =  row2colC_out_gggaa(x4, x5)
pB_out_gggaag(x1, x2, x3, x4, x5, x6)  =  pB_out_gggaag(x4, x5)
U3_gggaag(x1, x2, x3, x4, x5, x6, x7, x8, x9)  =  U3_gggaag(x7, x8, x9)
U4_gggaag(x1, x2, x3, x4, x5, x6, x7, x8, x9)  =  U4_gggaag(x4, x5, x6, x9)
U5_gggaag(x1, x2, x3, x4, x5)  =  U5_gggaag(x5)
transposeD_out_gg(x1, x2)  =  transposeD_out_gg
PB_IN_GGGAAG(x1, x2, x3, x4, x5, x6)  =  PB_IN_GGGAAG(x1, x2, x3, x6)
U3_GGGAAG(x1, x2, x3, x4, x5, x6, x7, x8, x9)  =  U3_GGGAAG(x7, x8, x9)

We have to consider all (P,R,Pi)-chains

(17) UsableRulesProof (EQUIVALENT transformation)

For (infinitary) constructor rewriting [LOPSTR] we can delete all non-usable rules from R.

(18) Obligation:

Pi DP problem:
The TRS P consists of the following rules:

PB_IN_GGGAAG(T23, T25, T26, .(T113, T114), T112, .(T110, T111)) → U3_GGGAAG(T23, T25, T26, T113, T114, T112, T110, T111, row2colC_in_gggaa(T23, T25, T26, .(T113, T114), T112))
U3_GGGAAG(T23, T25, T26, T113, T114, T112, T110, T111, row2colC_out_gggaa(T23, T25, T26, .(T113, T114), T112)) → PB_IN_GGGAAG(T110, T113, T114, X185, X186, T111)

The TRS R consists of the following rules:

row2colC_in_gggaa(.(T53, T54), .(T53, T55), T56, .(T55, X91), .([], X92)) → U6_gggaa(T53, T54, T55, T56, X91, X92, row2colA_in_ggaa(T54, T56, X91, X92))
U6_gggaa(T53, T54, T55, T56, X91, X92, row2colA_out_ggaa(T54, T56, X91, X92)) → row2colC_out_gggaa(.(T53, T54), .(T53, T55), T56, .(T55, X91), .([], X92))
row2colA_in_ggaa(.(T77, T78), .(.(T77, T79), T80), .(T79, X139), .([], X140)) → U1_ggaa(T77, T78, T79, T80, X139, X140, row2colA_in_ggaa(T78, T80, X139, X140))
row2colA_in_ggaa([], [], [], []) → row2colA_out_ggaa([], [], [], [])
U1_ggaa(T77, T78, T79, T80, X139, X140, row2colA_out_ggaa(T78, T80, X139, X140)) → row2colA_out_ggaa(.(T77, T78), .(.(T77, T79), T80), .(T79, X139), .([], X140))

The argument filtering Pi contains the following mapping:
.(x1, x2)  =  .(x1, x2)
row2colC_in_gggaa(x1, x2, x3, x4, x5)  =  row2colC_in_gggaa(x1, x2, x3)
U6_gggaa(x1, x2, x3, x4, x5, x6, x7)  =  U6_gggaa(x3, x7)
row2colA_in_ggaa(x1, x2, x3, x4)  =  row2colA_in_ggaa(x1, x2)
U1_ggaa(x1, x2, x3, x4, x5, x6, x7)  =  U1_ggaa(x3, x7)
[]  =  []
row2colA_out_ggaa(x1, x2, x3, x4)  =  row2colA_out_ggaa(x3, x4)
row2colC_out_gggaa(x1, x2, x3, x4, x5)  =  row2colC_out_gggaa(x4, x5)
PB_IN_GGGAAG(x1, x2, x3, x4, x5, x6)  =  PB_IN_GGGAAG(x1, x2, x3, x6)
U3_GGGAAG(x1, x2, x3, x4, x5, x6, x7, x8, x9)  =  U3_GGGAAG(x7, x8, x9)

We have to consider all (P,R,Pi)-chains

(19) PiDPToQDPProof (SOUND transformation)

Transforming (infinitary) constructor rewriting Pi-DP problem [LOPSTR] into ordinary QDP problem [LPAR04] by application of Pi.

(20) Obligation:

Q DP problem:
The TRS P consists of the following rules:

PB_IN_GGGAAG(T23, T25, T26, .(T110, T111)) → U3_GGGAAG(T110, T111, row2colC_in_gggaa(T23, T25, T26))
U3_GGGAAG(T110, T111, row2colC_out_gggaa(.(T113, T114), T112)) → PB_IN_GGGAAG(T110, T113, T114, T111)

The TRS R consists of the following rules:

row2colC_in_gggaa(.(T53, T54), .(T53, T55), T56) → U6_gggaa(T55, row2colA_in_ggaa(T54, T56))
U6_gggaa(T55, row2colA_out_ggaa(X91, X92)) → row2colC_out_gggaa(.(T55, X91), .([], X92))
row2colA_in_ggaa(.(T77, T78), .(.(T77, T79), T80)) → U1_ggaa(T79, row2colA_in_ggaa(T78, T80))
row2colA_in_ggaa([], []) → row2colA_out_ggaa([], [])
U1_ggaa(T79, row2colA_out_ggaa(X139, X140)) → row2colA_out_ggaa(.(T79, X139), .([], X140))

The set Q consists of the following terms:

row2colC_in_gggaa(x0, x1, x2)
U6_gggaa(x0, x1)
row2colA_in_ggaa(x0, x1)
U1_ggaa(x0, x1)

We have to consider all (P,Q,R)-chains.

(21) QDPSizeChangeProof (EQUIVALENT transformation)

By using the subterm criterion [SUBTERM_CRITERION] together with the size-change analysis [AAECC05] we have proven that there are no infinite chains for this DP problem.

From the DPs we obtained the following set of size-change graphs:

  • U3_GGGAAG(T110, T111, row2colC_out_gggaa(.(T113, T114), T112)) → PB_IN_GGGAAG(T110, T113, T114, T111)
    The graph contains the following edges 1 >= 1, 3 > 2, 3 > 3, 2 >= 4

  • PB_IN_GGGAAG(T23, T25, T26, .(T110, T111)) → U3_GGGAAG(T110, T111, row2colC_in_gggaa(T23, T25, T26))
    The graph contains the following edges 4 > 1, 4 > 2

(22) YES